import { Module } from "@nestjs/common";
import { AuthController } from "./auth.controller";
import { AuthService } from "./auth.service";
import { APP_GUARD } from "@nestjs/core";
import { AuthGuard } from "./auth.guard";
import { UserModule } from "../user/user.module";
import { JwtModule } from "@nestjs/jwt";
import { JWT_SECRET_KEY } from "./auth.jwt.secrect";

@Module({
  imports: [
    UserModule, // 导入user模块,才能使用user模块下的service
    // 引入 JWT 模块
    JwtModule.register({ // 全局启用JWT
      global: true, // 表示全局启用
      secret: JWT_SECRET_KEY, // 密钥
      signOptions: { expiresIn: `${24 * 60 * 60}s`} // 过期时间
    })
  ],
  controllers: [AuthController],
  providers: [
    AuthService,
    { // 全局启用身份验证守卫 useClass 指定 AuthGuard 类名
      provide: APP_GUARD,
      useClass: AuthGuard,
    }
  ],
})
export class AuthModule {}
